Concatenar strings con StringBuilder

Descripcion

Cuando tenemos que concatenar strings en bucle, en vez de hacerlo directamente con el operador + es mas óptimo hacerlo con un StringBuilder.

Si solo vamos a concatenar un string aislado (sin que sea una operación repetitiva), podríamos hacerlo directamente con el operador +.

Metodo

Código Ejemplo

En el siguiente ejemplo se muestra una concatenación en bucle, comparando el método con el operador de concatenación con el StringBuilder:

using MonitoringLib;
using static System.Console;

int[] numbers = Enumerable.Range(0, 50_000).ToArray();

WriteLine("String con +");
Recorder.Start();

string s = string.Empty;

for (int i = 0; i < numbers.Length; i++)
{
    s+= numbers[i] + ", ";
}

Recorder.Stop();

WriteLine("String con stringBuilder");

Recorder.Start();

System.Text.StringBuilder sb = new System.Text.StringBuilder();

for (int i = 0; i < numbers.Length; i++)
{
    sb.Append(numbers[i]);
    sb.Append(", ");
}

Recorder.Stop();

Como se puede ver en la ejecución, con el operador +, tarda unos 4.700 milisegundos mientras que con el StringBuilder tarda 1 milisegundo.

Tags

C# | StringBuilder